package co.yixiang.modules.monitor.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * RedisService接口用于管理Redis缓存操作 可自行扩展
 */
public interface RedisService {

    /**
     * 通过键值和分页信息查找缓存项
     * @param key 缓存项的键值
     * @param pageable 分页信息
     * @return 包含缓存项的Page对象
     */
    Page findByKey(String key, Pageable pageable);

    /**
     * 查询验证码的值
     * @param key 验证码的键值
     * @return 验证码的值
     */
    String getCodeVal(String key);

    /**
     * 保存验证码到缓存中
     * @param key 验证码的键值
     * @param val 验证码的值
     */
    void saveCode(String key, Object val);

    /**
     * 通过键值删除缓存项
     * @param key 要删除的缓存项的键值
     */
    void delete(String key);

    /**
     * 清空所有缓存
     */
    void flushdb();
}
